#include	<FW/Setup.h>
#include	<FW/System/UnCopyable.h>

#include	<Windows.h>


namespace System
{

typedef void ( * FuncType ) ( void * );

class Thread : UnCopyable
{
	virtual void					Run			( void );
	static unsigned int __stdcall	ThreadFunc	( void * UserData );

	HANDLE							mHandle;
	FuncType						mFunction;
	void *							mUserData;
public:
									 Thread		( void );
									 Thread		( FuncType Function, void * UserData );
	virtual							~Thread		( void );
	void							Start		( void );
	void							Wait		( void );
	void							Stop		( void );
};

}
